package br.ufrj.dcc.org2.signature;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class OutputWriter {
	
	// Tamanho do conjunto de dados
	private static int tam;
	// Caminho do arquivo a ser utilizado para armazenar os dados
	private static final String CAMINHO_ARQUIVO = "./saida.txt";
	// Vetor que contém os dados
	
	public OutputWriter(HashTable hash, ArrayList<Separator> arrayList) {
		criaArquivo(hash, arrayList);
	}
	
	public static void criaArquivo(HashTable ht, ArrayList<Separator> arrayList){
		try {
			//Abrindo arquivo para escrita
			BufferedWriter writer = new BufferedWriter(new FileWriter(new File(CAMINHO_ARQUIVO)));
			
			DataItem[] tempDataArray = ht.getHashTable();
			
			for (DataItem di : tempDataArray) {
				if (di == null)
					writer.write("** ");
				else
					writer.write(di.getKey() + " ");
				writer.newLine();
			}
			writer.newLine();
			writer.write("Separadores");
			writer.newLine();
			for (Separator s : arrayList) {
				if (s == null)
					writer.write("** ");
				else
					writer.write(s.getKeyString() + " ");
				writer.newLine();
			}
			writer.flush();
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("Não foi possível abrir o arquivo " + CAMINHO_ARQUIVO + " para escrita");
		}
	}
}
